Method, apparatus, and computer program product for processing received signals for locating

ABSTRACT

Example embodiments are directed to various aspects of processing received signals for determining a location of a source of the signals. An example method may include generating signal timing information, and determining times for a plurality of window periods for the signal of interest based on the signal timing information. The example method may also include retrieving, from a memory device that stores the signal stream, symbols of the signal of interest based on the window periods, and formatting the symbols of the signal of interest in preparation for determining a location of a source of the signal of interest. Additional and alternative methods and apparatuses are also provided.

PRIORITY CLAIM

This application claims priority from U.S. Provisional Application Ser.No. 61/449,436, filed on Mar. 4, 2011, entitled “Method, Apparatus, andComputer Program Product for Processing Received Signals for Locating”which is hereby incorporated by reference in its entirety.

TECHNICAL FIELD

Embodiments of the present invention relate generally to the field ofwireless signal processing, and more particularly, example embodimentsrelate to processing received signals for locating a source of thesignals.

BACKGROUND

With the continued and rapid evolution of wireless technologies, thereis an ever increasing demand to leverage the transmission of wirelesssignals to locate a source of a signal, which may be affixed to anasset. By locating the source of the signal, the location of the assetmay then be known. To facilitate the locating of an asset, an electronicwireless communications device having at least a transmitter that sendsout signals may be affixed to a movable asset. The signals from thetransmitter may be received by receivers that are within range and thesignals may be processed. By processing the signals provided by thetransmitter and received at a few receivers, a determination of thelocation of the transmitter may be performed.

The ability to locate an asset has become increasingly important in anumber of business environments. Accordingly, end users continue todemand that location determinations be increasingly accurate topin-point the location of an asset within a narrow error range. Further,end users increasingly demand precision with respect to locationdeterminations such that the results are consistently reproducible anderroneous location determinations are eliminated or reduced.

SUMMARY

The following provides a description of various example apparatuses,methods, and computer programs stored on computer-readable media thatfacilitate the ability to efficiently determine a location of an assetwith precision and accuracy. One example apparatus that may participatein the process of determining a location is a receiver. The receiver maybe configured to capture wireless signals and process those signals todetermine, for example, a time of arrival at the receiver. This time ofarrival information may be combined with other time of arrivalinformation regarding the same signal received at other receivers todetermine a location.

According to some example embodiments, a system for locating a signalsource may be provided. The system may comprise a plurality of receiverscomprising a first receiver, and a plurality of node devices. The firstreceiver may comprise processing circuitry configured to at leastreceive a wireless signal stream that originated from at least one ofthe node devices, wherein the wireless signal stream includes a signalof interest, generate signal timing information comprising one or morepulses based on a received wireless signal stream, the pulses beingtime-compressed portions of the signal of interest, and determine timesfor a plurality of window periods for the signal of interest based onthe signal timing information, wherein each timing window is associatedwith a respective pulse of the timing information.

According to some example embodiments, an example method may beprovided. The method may comprise receiving a wireless signal streamthat originated from a node device, the wireless signal stream includinga signal of interest, generating signal timing information comprising aone or more of pulses based on the wireless signal stream, the pulsesbeing time-compressed portions of the signal of interest, anddetermining times for a plurality of window periods for the signal ofinterest based on the signal timing information, wherein each timingwindow is associated with a respective pulse of the timing information.

According to some example embodiments, an example apparatus may beprovided. The example apparatus may comprise processing circuitryconfigured to at least receive a wireless signal stream from a nodedevice, the wireless signal stream including a signal of interest,generate signal timing information comprising a one or more of pulsesbased on the wireless signal stream, the pulses being time-compressedportions of the signal of interest, and determine times for a pluralityof window periods for the signal of interest based on the signal timinginformation, wherein each timing window is associated with a respectivepulse of the timing information.

According to some example embodiments, a non-transitorycomputer-readable storage medium having program code stored thereon maybe provided. The non-transitory computer-readable storage medium mayhave program code being configured to, upon execution, direct anapparatus to at least receive a wireless signal stream from a nodedevice, the wireless signal stream including a signal of interest,generate signal timing information comprising a one or more of pulsesbased on the wireless signal stream, the pulses being time-compressedportions of the signal of interest, and determine times for a pluralityof window periods for the signal of interest based on the signal timinginformation, wherein each timing window is associated with a respectivepulse of the timing information.

BRIEF DESCRIPTION OF THE DRAWING(S)

Reference will now be made to the accompanying drawings, which are notnecessarily drawn to scale, and wherein:

FIG. 1 illustrates an example wireless locating system according tovarious example embodiments;

FIG. 2 is a block diagram of an example receiver according to variousexample embodiments;

FIG. 3 illustrates an example signal triggering and formatting unitaccording to various example embodiments;

FIG. 4 illustrates the operation of an example matched filter withrespect to a received, one symbol signal;

FIG. 5 illustrates the operation of an example matched filter withrespect to a received, multi-symbol signal; and

FIG. 6 is a flowchart of a method for signal formatting according tovarious example embodiments of the present invention.

DETAILED DESCRIPTION

Embodiments of the present invention will now be described more fullyhereinafter with reference to the accompanying drawings, in which some,but not all embodiments of the invention are shown. Indeed, theinvention may be embodied in many different forms and should not beconstrued as limited to the embodiments set forth herein; rather, theseembodiments are provided so that this disclosure will satisfy applicablelegal requirements. Like reference numerals refer to like elementsthroughout. As used herein, the terms “data,” “content,” “information,”and similar terms may be used interchangeably to refer to data capableof being transmitted, received, operated on, and/or stored in accordancewith embodiments of the present invention. Moreover, the term“exemplary,” as used herein, is not provided to convey any qualitativeassessment, but instead to merely convey an illustration of an example.

In accordance with an example embodiment, FIG. 1 depicts a wirelesslocating system 100. The system 100 may include one or more receivers105 (e.g., receivers 105 a, 105 b, and 105 c) and one or more nodes 110(e.g., nodes 110 a and 110 b) to be located. The system 100 may alsoinclude a communications network 125 (e.g., a wireless area network(WLAN)) that provides a communications connection between the receivers105 and with other networks and communications devices. Additionally, insome example embodiments, the system 100 may include a locationprocessing service 120.

According to various example embodiments, the system 100 may be any typeof wireless environment including but not limited to a WLAN. In someexample embodiments, the system 100 may be dedicated to locationingfunctionality and may operate in the same space as a WLAN system, butthe system 100 may operate separate from the WLAN such that routing andother WLAN functionality is performed by separate WLAN hardware. Thesystem 100 may support locationing of wireless signals via any type ofcommunications standard. Wireless signaling within the system 100 (e.g.,signaling between the nodes 110 and the receivers 105) may be conductedon one or more frequency or communication channels. As a more specificexample, the system 100 may be configured to support signaling inaccordance with ISO24730, IEEE 802.x (e.g., IEEE 802.11, IEEE 802.15,and the like), Zigbee, ultra wide-band (UWB), and signaling based onvarious other standards. Proprietary, non-standards based communicationsmay also be supported.

The system 100 may operate as a system for locating transmitters, suchas the transmitters of nodes 110. To locate these nodes, the system 100may be configured to support applications such as time-of-arrival (ToA)and differential time-of-arrival (DToA) location applications where, forexample, a node 110 transmits a signal to receivers 105 that may bedetected and processed to identify the location of the node 110.

Nodes 110 may be devices such as, for example, mobile terminalsconfigured to transmit a wireless signal, and, in some instances may bereferred to as tags with wireless signaling capabilities. Nodes 110 maybe a variety of different types of devices and may each transmitwireless signals using a carrier frequency that is particular to thetype of node device. Nodes 110 may be any type of device that includesat least a transmitter, which may include a node specifically designedfor asset locating that is affixed to an asset. A node 110 mayalternatively be a receiver acting as a reference node. The nodes 110may, in some example embodiments, may comprise as an access point, ahandheld device (e.g., a cellular phone, a tablet device), a mobilecomputer, or the like. In some embodiments, the node 110 may bededicated and specifically designed for the function of locating anasset. However, in some example embodiments, the node 110 may be, forexample, a cellular phone that transmits wireless signals for thepurpose of cellular communications, but the system 100 may be configuredto detect those signals and perform locating with respect to thecellular signals. As such, in some example embodiments, the nodes 110may be configured to implement aspects of a wireless locating system.

In some example embodiments, a receiver device (e.g., prior toconfiguration within the system as a receiver 105) may be treated as anode and signals originating from the receiver device may be analyzedusing locating techniques, such as for example those described herein,to identify the location of the receiver device. The use of theselocating techniques to locate a receiver device that is being treated asa node may be part of a configuration procedure for configuring areceiver 105 within the wireless locating system 100 or may be part of aprocess to maintain a system time for use in signal processing todetermine the location of nodes.

According to various example embodiments, a node 110 may be configuredto transmit a wireless signal for the purpose of locating the node 110.In this regard, a node 110 may be configured to transmit a wirelesssignal to the receivers 105 to facilitate locating the node 110 using avariety of locating techniques, including signal arrival time, time ofarrival (ToA) or time difference of arrival (TDoA), signal angle ofarrival (AoA), signal magnitude such as received channel powerindication (RCPI) or received signal strength indication (RSSI), rangeto signal source such as time of flight (ToF), two way ranging (TWR),symmetrical double sided two way ranging (SDS-TWR) or near fieldelectromagnetic ranging (NFER), or the like; possibly used incombination. Referring to FIG. 1, node 110 a may transmit wirelesssignal 111 and node 110 b may transmit wireless signal 116 to facilitatedetermining the geographic location of node 110 a and node 110 b,respectively.

The location processing service 120 may be a computer, server, or othernetwork device in communication with the system 100, via a wired orwireless connection. As depicted in FIG. 1, for example, the locationprocessing service 120 may include an antenna for network communicationsto, for example, interface with the receivers directly or via thenetwork 125. In other embodiments, the location processing service maybe hardwired to a wired network that is accessible via network 125. Thelocation processing service 120 may be configured to perform any type ofprocessing for the system 100. For example, the location processingservice 120 may be configured to perform computations with respect tosignals of interest or processed data associated with signals ofinterest, e.g., signal ToA information, to determine the location of asource of a particular signal that was received by the receivers 105.While, according to some example embodiments, the receivers may performpreliminary signal processing, the location processing service 120 maybe configured to receive processed data about a signal from thereceivers 105 and consider the received data in the aggregate (e.g.,considering data from multiple receivers) to determine the location of asource of the signal.

The location processing service 120 may, in some example embodiments, bea receiver device that has been configured to also operate as a locationprocessing service 120. While in some example embodiments the locationprocessing service 120 may be a single network entity, according tovarious other alternative embodiments, the functionality of the locationprocessing service may be separated and/or distributed within the system100, for example, across the receivers 105.

The network 125 may be any type of wired or wireless network forcommunications. Network 125 may incorporate connections to other localarea networks (LANs) or WLANs, and network 125 may, in some exampleembodiments, provide a connection between the system 100 and, forexample, the Internet. While network 125 is depicted in FIG. 1 as beingconnected or in communication with receiver 105 c, according to variousexemplary embodiments, some or all of the receivers 105 of system 100may be connected or in communication with network 125, and some or allof the nodes 110 of system 100 may also be connected or in communicationwith the network 125. In some example embodiments, the receivers 105 maybe connected as clients to the network 125.

FIG. 2 provides a detailed block diagram of a receiver 105, which isconfigured to facilitate node locating using ToA techniques. Even thoughthe description of the receiver that follows specifically includescomponents configured to implement ToA-based techniques, it iscontemplated that the ToA components and configuration could be replacedwith any other locating technology, such as those listed above. In otherwords, the ToA features of the receiver are merely exemplary of one typeof locating technology that could be implemented by the receiver 105,and other technologies may additionally or alternatively be incorporatedinto the receiver 105.

According to some example embodiments, the receiver 105 may include anRF front-end 200, a signal triggering and formatting unit 210, a ToAdetermination and data extraction unit 216, and a packet assembly anddelivery unit 220. It is noteworthy that each of the RF front-end 200,the signal triggering and formatting unit 210, the ToA determination anddata extraction unit 216, and the packet assembly and delivery unit 220may be scalable, to the extent necessary, within the receiver 105thereby permitting parallel processing of signals. Further, whilefunctionalities of the receiver 105 are described and depicted withrespect to separate components or groups of components, it iscontemplated that the various functionalities described may be performedby various combinations of components.

The RF front-end 200 may be configured to receive wireless signals(e.g., a wireless signal stream) and convert the signals for use insignal identification triggering and ToA processing. To perform theseoperations, the RF front-end 200 may include an antenna 202, adownconverter 206, and an analog-to-digital (A/D) converter 208. In someexample embodiments, the antenna 202 may comprise multiple antennas(e.g., illustrated as two antennas 202 a and 202 b). According tovarious example embodiments, the use of multiple antennas may beleveraged to capture and address multipath signals. The antennas 202 maybe used for both receiving and transmitting wireless signals. To assistin signal detection and to compensate for multipath, two antennas may beused and the signals received at each antenna may be compared.

To facilitate a level of flexibility in the operation of the antennas, aswitch 204 may be implemented between the antennas 202 a and 202 b. Theswitch may be controlled by, for example, the processor 222 tofacilitate capturing of wireless signals via the antennas andtransmitting wireless signals, when needed. Switch 204 also permits thereceiver 105 to act as a node and send out the appropriate wirelesssignals to be received by other receivers. As such, according to someexample embodiments, any antenna may be controlled such that it is usedas a transmitting antenna for short periods of time. Through thisfeature, the receiver may operate as a reference node or reference tagat a known location that permits the system 100 to keep a system time ora system clock for use when determining a location of a source of asignal. To leverage this flexibility of the antennas to be able totransmit, the receiver 105 may include a signal generator 224. In thisregard, the signal generator 224 may be configured to output a specific,generated signal to an antenna for transmission, when required. Thesignal may be one that makes the receiver 105 appear to be a node thatmay be located.

Via the antennas, the RF front-end 200 may be configured to receive andconvert a broad portion of the RF spectrum. In this regard, according tosome example embodiments, the entire ISM (industrial, scientific, andmedical) band, or a portion thereof, may be received via the RFfront-end 200 in preparation for signal processing to determine alocation. The RF front-end may therefore be configured to generate asegmented or overlapped baseband representation of the received signalsto be passed to the signal triggering and formatting unit 210 fortemporary storage, triggering, and formatting. As such, any wirelessdevice that operates in the ISM band may be located by the by using thereceivers 105.

The downconverter 206 and the A/D converter 208 may be configured toprepare the received signals for triggering and storage. In this regard,the downconverter 206 and A/D converter 208 may operate to downconvertand digitize the received band into a baseband representation forfurther signal processing within the receiver. As such, according tosome example embodiments, the RF front-end 200 may provide a converted(e.g., baseband) version of a received band to the signal triggering andformatting unit 210.

The signal triggering and formatting unit 210 may include a triggeringand formatting processor 214 and a memory 212. The processor 214 may bedesigned as an application specific device such as a field programmablegate array (FPGA), an application specific integrated circuit (ASIC), orthe like. The memory 212 may be any type of memory device (e.g.,volatile or non-volatile) configured to store signals received from theRF front-end 200. In some example embodiments, the memory 212 may be adouble data rate (DDR) memory device, such as a DDR synchronous dynamicrandom access memory (SDRAM).

In function, the processor 214 may be configured to receive theconverted signals provided by the RF front-end 200 as a stream ofwireless signals, and route the converted signal to the memory 212 forstorage in a raw data format. In some example embodiments, the convertedsignals may be derived from a plurality of received wireless signalstreams, where each stream has a different carrier frequency. Storage ofthe signals within the memory 212 may be performed such that the memoryoperates as a circular buffer that keeps a history of received signals.The processor 214 may also be configured to analyze some or all of thereceived signals within the stream to determine whether a receivedsignal is one of a predefined set of signals of interest. A signalrecognizer may be implemented to determine whether the received streamincludes a signal of interest. To do so, the signal recognizer may beconfigured to generate signal timing information in the form of a seriesof pulses or one or more pulses. Generating the signal timinginformation may be performed with respect to signals at differentfrequencies or different channels and possibly received from differentsource devices. If a signal is determined to be a signal of interest,then a window controller may be triggered. Via the triggering, thewindow controller may determine a time for a plurality of window periodsfor the signal of interest associated with each of the pulses. Thewindow periods may be determined for each of the received wirelesssignal streams, which may be at different frequencies or on differentchannels. Using the window periods, the processor may be configured toretrieve the desired signal information (i.e. the stored, convertedsignal) from the memory 212, format the retrieved signal information inthe form of one or more symbols, and provide the formatted signalinformation to the ToA determination and data extraction unit 216.According to some example embodiments, to format the retrieved signalinformation, the processor 214 may quadrature sample the received signalinformation to be provided to the ToA determination and data extractionunit 216.

Having generally described the functionality of the signal triggeringand forwarding unit 210 in the context of FIG. 2, FIG. 3 provides someadditional and alternative details of the functionality implemented bythe processor 214. As mentioned above, the signal triggering andformatting unit 210 may include a processor 214. FIG. 3 provides a blockdiagram of the functionality provided by the processor 214. In thisregard, the processor 214, which is depicted in FIG. 3 as an exampleFPGA, may include a memory interface 302 (or memory controller), asignal recognizer 304, window controllers 306, and a formatter 308.While FIG. 3 depicts the structure of processor 214 as an FPGA, it iscontemplated that the processor 214 may be embodied as any type hardwaredevice configured to perform the functionality of processor 214, such asa general purpose processor specifically configured, via the executionof program code stored in a memory device, to perform thefunctionalities.

As indicated above, the processor 214 may be configured to receiverepresentations of wireless signals as part of the monitored band thatwas received and converted by the RF front-end 200. The representationsmay be received as input signals 300. The input signals 300 may berepresentations of the wireless band received at the RF front-end, butconverted to baseband. Upon receipt, the input signals 300 may beforwarded to the memory interface 302 and the signal recognizer 304. Thememory interface 302 may be configured to interface with the memory 212to store the input signals 300 and provide for retrieving the inputsignals 300 when requested. As such, the memory interface 302 may beconfigured to receive the input signals 300 and store the signals. Insome example embodiments, the memory interface 302 may be configured tostore the inputs signal such that the memory 212 operates as a circularbuffer. As such, a first-in/first-out technique may be implemented thatpermits a running time duration of signals to be stored in the memory212, where the time duration is a function of the memory space availablefor signal storage. In some example embodiments, the memory 212 may beof a memory size that allows the memory interface 302 to store 0.25seconds of signals in the memory 212.

The input signals 300 may also be provided to a signal recognizer 304for analysis. The signal recognizer 304, which may include one or morematched filters, may be configured to identify a signal of interest. Inthis regard, the signal recognizer 304 may be configured to compare anincoming signal to one or more reference signals, or referencewaveforms, to determine whether the input signal is a signal ofinterest. In some instances, the reference signals may be referred to astriggers. The reference signals may be defined with respect to a patternof data, the type of modulation, the bit spacing, and/or the like. Insome example embodiments, the reference signals may be defined toidentify a particular packet header having, for example, a particularMAC address, or particular data within the body of the packet. In someexample embodiments, the reference signals may be software configurableand, as such, may be readily changed to permit recognition of newdesired signals. According to some example embodiments, a definedspacing of pulses, with respect to time, that are output from thematched filter may be an indication that a signal of interest has beenor is being received.

To recognize a signal, according to some example embodiments, the signalrecognizer 304 may include a matched filter or matched filterfunctionality. In some example embodiments, the matched filter orfilters may be configured to analyze a number of frequency channelswithin the input signals. As part of the recognition process, the signalrecognizer 304 may be configured to demodulate a recognized input signaland transform the signal into pulses. These pulses may, according tosome example embodiments, be forwarded as signal timing information tothe window controllers 306. Additionally, the output of the signalrecognizer 304 may provide signal parameters (e.g., phase and data)derived from the received signal to the memory interface for storage.

Upon detecting or recognizing a signal of interest, a triggering eventmay occur, and the signal recognizer 304 may trigger a window controller306. The triggering event may be the occurrence of a pulse at the outputof the signal recognizer 304. The window controller 306 may beconfigured to track the duration of the signal of interest to determinewhat portion of the memory 212 should be retrieved for signalprocessing. In this regard, the window controller 306 may determine anumber of epochs or symbols of information to be retrieved from thememory. The duration may be determined such that a threshold number ofpartial sums (e.g., 12 partial sums) are captured within the window.Partial sums may be utilized, for example, as indicated in U.S. Pat. No.6,366,626, which is hereby incorporated by reference in its entirety. Insome example embodiments, the window controller 306 may be configured tooperate as a set-on receiver. Further, in some example embodiments, theprocessor 214 may include a number of window controllers 306 (e.g.,eight window controllers) that permit the tracking of a plurality ofsignals of interest.

FIGS. 4 and 5 illustrate the functionality of the signal recognizer andthe window controller(s) with respect to the signals that are beinganalyzed and generated throughout the process. FIG. 4 illustrates anexample where an initial signal is a simplified signal based on one-bitof information, while FIG. 5 builds on the description of FIG. 4 byintroducing a more complex initial signal.

FIG. 4 illustrates a transmitting device 410 (e.g., a node) and areceiving device 430 (e.g., a portion of receiver 105). In thetransmitting device, a signal 400 may be initially generated as any typeof signal. In this case, the signal 400 may be a direct spread waveform(e.g., IEEE 802.11a, ISO24730 waveform, or the like). The signal 400includes a single data symbol (e.g., one bit). The time duration of thedata symbol is represented by τ_(s). On the time axis, the symbol maybegin at time t₀. Via a spreading sequence, the signal 400 is spread byone epoch of a psuedonoise (pn) code to generate the signal 420. Thesignal may then be upconverted by a carrier frequency f₀ andtransmitted. The signal may then be received by the receiving device430, which may include a matched filter. The matched filter may be oneexample of the signal recognizer of 304 of FIG. 3 or a portion of thesignal recognizer 304.

Upon receipt of the transmitted signal, the signal may be downconvertedby a local oscillator of the receiving device 430, which may be acomponent of the RF front end (e.g., downconverter 206). Afterdownconversion, the signal may then again be in the form of the signal420 when the signal enters the matched filter. Due to its configuration,the matched filter may output a pulse which is compressed in time by aspread ratio (Rs). In this regard, for example, if the signal is anISO24730 signal, the spread ratio is 511. As such, the output of thematched filter may be meaningful in the last 511^(th) of the signal(i.e., the first 510/511ths of the signal may be overlooked or ignored).Further, in some example embodiments, only in the event that there is apulse present in the meaningful portion of the output signal (e.g., thelast 511^(th) of an ISO24730 signal or another portion based on thespread ratio) is there deemed to be any significant and usefulinformation. The duration of the pulse may be defined as τ_(p).

As mentioned above, FIG. 5 illustrates an example where the initialsignal is a more complex signal. The signal 500 is the initial signal,which extends the concepts described with respect to FIG. 4 to anN-symbol message, where N is the number of symbols in the message.According to various example embodiments, various types of data may beincluded in the signal 500 (which may be received from a device such asa node 110), the types of data including, for example, tag identifierinformation, information about the asset that a tag is associated oraffixed to, a reading or measurement captured by a sensor, messagehandling priority information, or the like. In signal 500, the data isshown as binary valued. Signal 500 may be provided, after having beenreceived from a node 110, to the matched filter 510. Again, the matchedfilter may embody or be a portion of the signal recognizer 304. At theoutput of the matched filter, the signal 520 may be comprised ofpositive and negative pulses spaced in time by one epoch (or symbolduration). According to some example embodiments, the pulses areprovided only at time intervals when pulses of interest for furtheranalysis are present.

The matched filter may be configured to provide signal timinginformation by indicating when the signal of interest starts and when anext pulse of the signal of interest is expected. The matched filter mayprovide, as outputs of the signal recognizer 304 in FIG. 3, parametricsignal information (e.g., phase and data of the signal) to the memoryinterface 302. The matched filter may also provide the signal timinginformation to the window controllers 306 of FIG. 3. Graph 540illustrates a more granular depiction of the pulse output provided bythe matched filter for a duration of three epochs.

It is noteworthy, that inexpensive crystals, for use in nodes to keeptime at the node, can be inaccurate and can cause a situation where areceiver's local oscillator differs from a node's by a substantialamount. For example, the frequency difference multiplied by the symbolduration may be greater than 0.5. The difference may cause the matchedfilter of the receiver to have diminished responsiveness to receivedsignals of interest. To avoid this issue, a bank of matched filters maybe included in the signal recognizer 304. Each matched filter within thebank may be centered at a different frequency, which improves thelikelihood that at least one of the matched filters is capable ofdetecting the signal. In other words, a fractional matched filter may beassociated with particular fractions of a symbol or epoch. The complex(e.g., coherent) partial correlation results from each fractionalmatched filter may also be rotated and summed to approximate filtersmatched to the signal at several different frequencies.

The window controllers 306 may be configured to open the window (e.g.,store the matched filter output data to the memory) for an interval thatincludes the duration of the pulse τ_(p). Graph 550 of FIG. 5illustrates an example of a control signal for the window controllerindicating when the window is open (e.g., the signal is high) and whenthe window is closed (e.g., the signal is low). The window may, in someexample embodiments, be open only once per epoch. According to variousembodiments, the window controllers may be configured to time or trackthe pulse appearance as the pulse is being analyzed, or the windowcontrollers may be configured to use a window period that is fixedrelative to the expected window duration. In this regard, according tosome example embodiments, the window period may correspond to a fixednumber of samples. The window controllers may therefore be configured toidentify where some or all of the information pertaining to a particularsignal of interest is held in the memory. Thus, the window controllers306 may be configured to pass information about when the signal beganand ended to the formatter 308 in a form that relates to the continuousstorage of the input signal 300. For example, the window controllers 306may be configured to provide the formatter 308 with a memory address forretrieving the information about the signal from the memory. The windowcontrollers 306 may also be configured to identify when the signal ofinterest is complete or no longer present, by analyzing the pulse outputbeing provided by the matched filter.

Having tracked a signal of interest, the window controllers 306 may passwindow information, such as the duration of a signal of interest, to aformatter 308. Based on the window information, the formatter 308 mayrequest and retrieve the stored version of the signal of interest fromthe memory 212, via the memory interface 302. The formatter 308 mayreceive a digitized band that includes the signal of interest based on anumber of, for example, epochs identified by the window controller. Insome example embodiments, the formatter 308 may also request andretrieve the demodulated and transformed pulses that were generated bythe signal recognizer 304 and stored in the memory 212.

Upon retrieving the signal representation, the formatter 308 may formatthe representation of the signal of interest. In this regard, therepresentation of the signals stored in the memory may be robust andinclude a high level of granularity. The formatter 308 may be configuredto filter the retrieved signal to a desired quality level for use by theDSP 218. As such, the formatter 308 may be configured to provide signalspecific data 310 to the ToA Determination and Data Extraction Unit 216.Further, the DSP 218 may be provided with only a small fraction of thetotal data included in the input signals 300, which includes thenecessary information about the signal of interest. According to someexample embodiments, the fraction of data provided to the DSP 218 may beless than 0.02% of the originally received data for an ISO24730 signal.The formatter 308 may also be configured to pass the transformed pulsesgenerated by the signal recognizer 304 to the DSP 218. Additionally,gain information may be passed to the DSP 218. The information providedto the DSP 218 may then be analyzed and processed to perform ToAdetermination and data extraction.

Referring again to FIG. 2, the ToA determination and data extractionunit 216 may receive the formatted signal information from the signaltriggering and formatting unit 210. The ToA determination and dataextraction unit 216 may be implemented using one or more digital signalprocessors (DSPs) to further process the formatted signal information.FIG. 2 illustrates a receiver 105 using a single DSP 218, which may be afloating point DSP. The DSP 218 may be configured to receive theformatted signal information from the signal triggering and formattingunit 210, demodulate the signal, and time stamp the time of receipt ofthe signal. In this regard, the DSP 218 may be configured to determine atime of arrival for the signal, and extract any data that may have beenincluded as payload in the received signal. To determine the ToA, theDSP 218 may be confirmed to identify a first leading edge of thewaveform associated with the signal of interest. The DSP 218 may beconfigured to use magnitude-squared signal information to determine theToA and data. However, in some example embodiments, the DSP 218 may beconfigured to use quadrature processing to reach sub-chip multipathresolution. The DSP 218 may be capable of reaching these levels ofresolution by analyzing quadrature sampled information provided by thesignal triggering and formatting unit 210. As such, the I and Qinformation may be considered in conjunction with a ToA profile todetermine the time of arrival of the signal. In this regard, quadratureprocessing may permit the estimation of the phase of the receivedsignal. The effect of interference and noise can be significantlyreduced by processing energy (and in some instances only energy) that isin-phase with the desired signal. Reducing or eliminating these effectscan be important when attempting to determine when the first signalenergy arrived (e.g., find the leading edge of the correlation) sincethe correlation energy may be small at that instant. The time of arrivaland the data included in the signal may be passed to the packet assemblyand delivery unit 220 after being determined.

To determine a meaningful ToA value, the receivers 105 within the system100 may share a single time reference. Since determining the location ofa source of a signal is a time-dependent analysis, any error introducedby the time reference may cause substantial inaccuracies in the results.As such, to maintain accuracy, the time reference may be determined andkept at each receiver. The time reference may be implemented in a numberof ways. In one example embodiment, reference nodes may be used tomaintain the time reference at the various receivers. In this regard,since the location, and possibly the time, when the reference nodetransmits a wireless signal are known, the reference time can bedetermined at each receiver. The DSP 218 may be configured to performthis analysis to maintain the reference time. In receivers that utilizeinaccurate oscillators to keep time, the process of determining thereference time may be frequently performed to ensure high qualitylocating results.

In some example embodiments, the DSP 218 may be configured to determinelocation-related information about a signal in one or more of a numberof forms in addition to, or as an alternative to ToA determinations. Inthis regard, the DSP 218 may be perform signal origination locatingbased on various techniques including signal arrival time such as timeof arrival (ToA) or time difference of arrival (TDoA), signal angle ofarrival (AoA), signal magnitude such as received channel powerindication (RCPI) or received signal strength indication (RSSI), rangeto signal source such as time of flight (ToF), two way ranging (TWR),symmetrical double sided two way ranging (SDS-TWR) or near fieldelectromagnetic ranging (NFER), or the like; possibly used incombination.

The packet assembly and delivery unit 220 may be configured to receivethe ToA and data from the ToA determination and data extraction unit216, and packetize this received information for a locationdetermination procedure via the processor 222. The processor 222 may be,according to some example embodiments, a general purpose processor orCPU specifically configured by instructions retrieved from a memory. Insome example embodiments, the processor 222 may be an applicationspecific device that may be incorporated into other devices within thereceiver, such as, for example, the processor 214. In some exampleembodiments, the processor 222 may be running a version of the Linuxoperating system. Since the location determination may also be based ondata about the signal being generated by other receivers, the processor222 may be configured to forward the ToA and data (e.g., via the network125) to, for example, a location processing service 120 to determine thelocation. In some example embodiments, the receiver 105 may also operateas the location processing service, and as such, the processor 222 maybe configured to receive ToA and data from other receivers and determinethe location of the source of the signal.

Further, in some example embodiments, the ToA information may beweighted by the location processing service. In this regard, thelocation processing service may consider the ToA information anddetermine a degree of deviation from an expected ToA. The further a ToAis from an expected or estimated value, the smaller the weighting may befor the ToA. By using the weightings, the affect on an improper ToA canbe lessened to avoid or reduce incorrect location due to issues such asmultipath which can affect the location determination.

FIG. 6 depicts a flowchart of an example method that may be performed byprocessing circuitry, such as, for example, the processor 214 and/or theDSP 218 described above. In this regard, the processing circuitry may beconfigured to implement the functionality described with respect to FIG.6 as well as the other functionality, or subset of the functionality, ofthe receiver 105 described herein. Further, the functionality describedin association with FIG. 6 may be implemented by an apparatus that isdirected to perform the functionality in response to the execution ofprogram code that is appropriately configured.

The example method of FIG. 6 may include, at 600, generating signaltiming information that includes a series of pulses based on a receivedwireless signal stream comprising a signal of interest. In this regard,the pulses may be time-compressed portions of the signal of interest,and a matched filter may be implemented to generate the signal timinginformation. The example method may further include, at 620, determiningtimes for a plurality of window periods for the signal of interest basedon the signal timing information. Each timing window may be associatedwith a respective pulse of the timing information. Window controllersmay be implemented to determine the times for the plurality of timingwindows. According to some example embodiments, the example method mayalso include retrieving, from a memory device that stores the signalstream, symbols of the signal of interest based on the window periods at620. Additionally, at 630, the example method may also includeformatting the symbols of the signal of interest in preparation fordetermining a location of a source of the signal of interest.

According to some example embodiments, the example method may furtherinclude receiving the wireless signal stream that includes the signal ofinterest, and storing the wireless signal stream in the memory device.Additionally, or alternatively, storing the wireless signal stream mayinclude storing the wireless signal stream such that the memory deviceoperates as a circular buffer for incoming wireless signals. Further,according to various example embodiments, the operation of generatingthe signal timing information may additionally or alternatively includegenerating the signal timing information via at least one matchedfilter. In some example embodiments, generating the series of pulses mayinclude generating the series of pulses or one or more pulses where eachpulse is time-compressed based on a spread ratio. In some additional oralternative example embodiments, formatting the symbols may includefiltering data within the retrieved symbols to include only portions ofthe signal of interest that are associated with the window periods. Theexample method, according to some example embodiments, may additionallyor alternatively include preparing to or processing data todetermine'the location of the source of the signal of interest byestimating a phase of the signal of interest via utilization ofquadrature sampled data from the signal of interest, and reducinginterference and noise by processing a portion of the signal of interestthat is in-phase with the estimated phase. Additionally oralternatively, according to some example embodiments, the example methodmay include receiving a plurality of wireless signal streams, where eachsignal stream within the plurality having a respective carrier frequencyor a respective channel. Further in this regard, according to someexample embodiments, generating the signal timing information anddetermining the times for the plurality of window periods may beperformed with respect to a signal of interest for each of therespective carrier frequencies or respective channels.

FIG. 6 describes example methods and computer program products inaccordance with various example embodiments of the present invention.FIG. 6 illustrates flowcharts of a system, method, and computer programproduct according to example embodiments of the invention. It will beunderstood that each block, step, or operation of the flowcharts, and/orcombinations of blocks, steps, or operations in the flowcharts, can beimplemented by various means. Means for implementing the blocks, steps,or operations of the flowcharts, combinations of the blocks, steps oroperations in the flowcharts or other functionality of exampleembodiments of the invention described herein may include hardware,and/or a computer program products including a computer-readable storagemedium having one or more computer program code instructions, programinstructions, or executable computer-readable program code instructionsstore therein. In this regard, program code instructions may be storedon a memory device of an apparatus, such as the receiver 105, andexecuted by a processing circuitry, such as the processor 214. As willbe appreciated, any such program code instructions may be loaded onto acomputer or other programmable apparatus from a computer-readablestorage medium to produce a particular machine, such that the particularmachine becomes a means for implementing the functions specified in theflowcharts block(s), step(s), or operation(s). These program codeinstructions may also be stored in a computer-readable storage mediumthat can direct a computer, processing circuitry, a processor, or otherprogrammable apparatus to function in a particular manner to therebygenerate a particular machine or particular article of manufacture. Theinstructions stored in the computer-readable storage medium may producean article of manufacture, where the article of manufacture becomes ameans for implementing the functions specified in the flowcharts'block(s), step(s), or operation(s). The program code instructions may beretrieved from a computer-readable storage medium and loaded into acomputer, processing circuitry, processor, or other programmableapparatus to configure the computer, processing circuitry, processor, orother programmable apparatus to execute operational steps to beperformed on or by the computer, processing circuitry, processor, orother programmable apparatus. Retrieval, loading, and execution of theprogram code instructions may be performed sequentially such that oneinstruction is retrieved, loaded, and executed at a time. In someexample embodiments, retrieval, loading and/or execution may beperformed in parallel such that multiple instructions are retrieved,loaded, and/or executed together. Execution of the program codeinstructions may produce a computer-implemented process such that theinstructions executed by the computer, processor, or other programmableapparatus provide steps for implementing the functions specified in theflowcharts' block(s), step(s), or operation(s).

Accordingly, execution of instructions associated with the blocks,steps, or operations of the flowcharts by a processor, or storage ofinstructions associated with the blocks, steps, or operations of theflowcharts in a computer-readable storage medium, support combinationsof means for performing the specified functions and combinations ofsteps for performing the specified functions. It will also be understoodthat one or more blocks, steps, or operations of the flowcharts, andcombinations of blocks, steps, or operations in the flowcharts, may beimplemented by special purpose hardware-based computer systems and/orprocessors which perform the specified functions or steps, orcombinations of special purpose hardware and program code instructions.

Another example embodiment may be a system. The example system maycomprise a plurality of receivers comprising a first receiver and aplurality of node devices. The first receiver comprises processingcircuitry (e.g., signal triggering and formatting unit 210). Theprocessing circuitry of the first receiver may be configured to at leastreceive a wireless signal stream from at least one of the node device,where the wireless signal stream includes a signal of interest; generatesignal timing information comprising a series of pulses based on areceived wireless signal stream, the pulses being time-compressedportions of the signal of interest; and determine times for a pluralityof window periods for the signal of interest based on the signal timinginformation, wherein each timing window is associated with a respectivepulse of the timing information.

According to some example embodiments, the example system may furthercomprise a location processing service (e.g., location processingservice 120). The processing circuitry of the first receiver may, insome example embodiments, be further configured to retrieve, from amemory device that stores the signal stream, symbols of the signal ofinterest based on the window periods; format the symbols of the signalof interest in preparation for determining a location of a source of thesignal of interest; and send time of arrival information based on theformatted symbols to the location processing service. In this regard,the location processing service may be configured to determine thelocation of the source of the signal of interest based on the time ofarrival information.

Additionally, or alternatively, in some example embodiments, theprocessing circuitry of the first receiver that is configured to formatthe symbols may also be configured to filter data within the retrievedsymbols to include only portions of the signal of interest that areassociated with the window periods. Additionally or alternatively, theprocessing circuitry of the first receiver that is configured to processdata to facilitate determining the location of the source of the signalof interest includes being configured to estimate a phase of the signalof interest via utilization of quadrature sampled data from the signalof interest, and reduce interference and noise by processing a portionof the signal of interest that is in-phase with the estimated phase.

In some example embodiments, the processing circuitry of the firstreceiver may be further configured to store the wireless signal streamin a memory device. Additionally, or alternatively, the processingcircuitry of the first receiver configured to store the wireless signalstream may be configured to store the wireless signal stream such thatthe memory device operates as a circular buffer for incoming wirelesssignals. According to some example embodiments, the processing circuitryof the first receiver configured to generate the signal timinginformation may be configured to generate the signal timing informationvia at least one matched filter. Additionally or alternatively, theprocessing circuitry of the first receiver configured to generate theseries of pulses may also be configured to generate the series of pulseswhere each pulse is time-compressed based on a spread ratio.Additionally or alternatively, the processing circuitry of the firstreceiver is further configured to receive a plurality of wireless signalstreams, where each signal stream within the plurality having arespective carrier frequency. The processing circuitry of the firstreceiver may be further configured to generate the signal timinginformation and determine the times for the plurality of window periodsto with respect to a signal of interest for each of the respectivecarrier frequencies.

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseinventions pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the inventions are not to be limited to the specificembodiments disclosed and that modifications and other embodiments areintended to be included. Moreover, although the foregoing descriptionsand the associated drawings describe example embodiments in the contextof certain example combinations of elements and/or functions, it shouldbe appreciated that different combinations of elements and/or functionsmay be provided by alternative embodiments without departing from thescope of the description provided herein. In this regard, for example,different combinations of elements and/or functions other than thoseexplicitly described above are also contemplated. Although specificterms are employed herein, they are used in a generic and descriptivesense only and not for purposes of limitation.

1. A system for locating a signal source, the system comprising: aplurality of receivers comprising a first receiver; a plurality of nodedevices; and wherein the first receiver comprises processing circuitryconfigured to at least: receive a wireless signal stream that originatedfrom at least one of the node devices, the wireless signal streamincluding a signal of interest; generate signal timing informationcomprising one or more pulses based on a received wireless signalstream, the pulses being time-compressed portions of the signal ofinterest; and determine times for a plurality of window periods for thesignal of interest based on the signal timing information, wherein eachtiming window is associated with a respective pulse of the timinginformation.
 2. The system of claim 1 further comprising a locationprocessing service; wherein the processing circuitry of the firstreceiver is further configured to: retrieve, from a memory device thatstores the signal stream, symbols of the signal of interest based on thewindow periods; format the symbols of the signal of interest inpreparation for determining a location of a source of the signal ofinterest; determine time of arrival information based on the formattedsymbols; and provide the time of arrival information to the locationprocessing service; and wherein the location processing service isconfigured to determine the location of the source of the signal ofinterest based on the time of arrival information.
 3. The system ofclaim 2, wherein the processing circuitry of the first receiverconfigured to format the symbols includes being configured to filterdata within the retrieved symbols to include only portions of the signalof interest that are associated with the window periods.
 4. The systemof claim 1, wherein the processing circuitry of the first receiver isfurther configured to: estimate a phase of the signal of interest viautilization of quadrature sampled data from the signal of interest, andreduce interference and noise by processing a portion of the signal ofinterest that is in-phase with the estimated phase.
 5. The system ofclaim 1, wherein the processing circuitry of the first receiver isfurther configured to store the wireless signal stream in a memorydevice.
 6. The system of claim 5, wherein the processing circuitry ofthe first receiver configured to store the wireless signal streamincludes being configured to store the wireless signal stream such thatthe memory device operates as a circular buffer for incoming wirelesssignals.
 7. The system of claim 1, wherein the processing circuitry ofthe first receiver configured to generate the signal timing informationincludes being configured to generate the signal timing information viaat least one matched filter.
 8. The system of claim 1, wherein theprocessing circuitry of the first receiver configured to generate thesignal timing information comprising the one or more of pulses includesbeing configured to generate the series of pulses where each pulse istime-compressed based on a spread ratio.
 9. The system of claim 1,wherein the processing circuitry of the first receiver is furtherconfigured to: receive a plurality of wireless signal streams, eachsignal stream within the plurality having a respective carrierfrequency; and wherein the processing circuitry of the first receiverconfigured to generate the signal timing information and determine thetimes for the plurality of window periods is further configured togenerate the signal timing information and determine the times for theplurality of window periods with respect to a signal of interest foreach of the respective carrier frequencies.
 10. A method comprising:receiving a wireless signal stream that originated from a node device,the wireless signal stream including a signal of interest; generatingsignal timing information comprising a one or more of pulses based onthe wireless signal stream, the pulses being time-compressed portions ofthe signal of interest; and determining times for a plurality of windowperiods for the signal of interest based on the signal timinginformation, wherein each timing window is associated with a respectivepulse of the timing information.
 11. The method of claim 10 furthercomprising: retrieving, from a memory device that stores the signalstream, symbols of the signal of interest based on the window periods;formatting the symbols of the signal of interest in preparation fordetermining a location of a source of the signal of interest;determining time of arrival information based on the formatted symbols;and providing the time of arrival information to a location processingservice to determine the location of the source of the signal based onthe time of arrival.
 12. The method of claim 11, wherein formatting thesymbols includes filtering data within the retrieved symbols to includeonly portions of the signal of interest that are associated with thewindow periods.
 13. The method of claim 10 further comprising:estimating a phase of the signal of interest via utilization ofquadrature sampled data from the signal of interest, and reducinginterference and noise by processing a portion of the signal of interestthat is in-phase with the estimated phase.
 14. The method of claim 10further comprising storing the wireless signal stream in a memorydevice.
 15. The method of claim 14, wherein storing the wireless signalstream includes storing the wireless signal stream such that the memorydevice operates as a circular buffer for incoming wireless signals. 16.The method of claim 10, wherein generating the signal timing informationincludes generating the signal timing information via at least onematched filter.
 17. The method of claim 10, wherein generating thesignal timing information comprising the one or more of pulses includesgenerating the one or more of pulses where each pulse is time-compressedbased on a spread ratio.
 18. The method of claim 10, further comprising:receiving a plurality of wireless signal streams, each signal streamwithin the plurality having a respective carrier frequency; and whereingenerating the signal timing information and determining the times forthe plurality of window periods includes generating the signal timinginformation and determining the times for the plurality of windowperiods with respect to a signal of interest for each of the respectivecarrier frequencies.
 19. An apparatus comprising processing circuitryconfigured to at least: receive a wireless signal stream from a nodedevice, the wireless signal stream including a signal of interest;generate signal timing information comprising a one or more of pulsesbased on the wireless signal stream, the pulses being time-compressedportions of the signal of interest; and determine times for a pluralityof window periods for the signal of interest based on the signal timinginformation, wherein each timing window is associated with a respectivepulse of the timing information.
 20. The apparatus of claim 19, whereinthe processing circuitry is further configured to: retrieve, from amemory device that stores the signal stream, symbols of the signal ofinterest based on the window periods; format the symbols of the signalof interest in preparation for determining a location of a source of thesignal of interest; determine time of arrival information based on theformatted symbols; and provide the time of arrival information to alocation processing service to determine the location of the source ofthe signal based on the time of arrival.
 21. The apparatus of claim 20,wherein the processing circuitry configured to format the symbolsincludes being configured to filter data within the retrieved symbols toinclude only portions of the signal of interest that are associated withthe window periods.
 22. The apparatus of claim 19, wherein theprocessing circuitry is further configured to: estimate a phase of thesignal of interest via utilization of quadrature sampled data from thesignal of interest, and reduce interference and noise by processing aportion of the signal of interest that is in-phase with the estimatedphase.
 23. The apparatus of claim 19, wherein the processing circuitryis further configured to store the wireless signal stream in a memorydevice.
 24. The apparatus of claim 23, wherein the processing circuitryconfigured to store the wireless signal stream includes being configuredto store the wireless signal stream such that the memory device operatesas a circular buffer for incoming wireless signals.
 25. The apparatus ofclaim 19, wherein the processing circuitry configured to generate thesignal timing information includes being configured to generate thesignal timing information via at least one matched filter.
 26. Theapparatus of claim 19, wherein the processing circuitry configured togenerate the signal timing information comprising the one or more ofpulses includes being configured to generate the one or more of pulseswhere each pulse is time-compressed based on a spread ratio.
 27. Theapparatus of claim 19, wherein the processing circuitry is furtherconfigured to receive a plurality of wireless signal streams, eachsignal stream within the plurality having a respective carrierfrequency; and wherein the processing circuitry is further configured togenerate the signal timing information and determine the times for theplurality of window periods includes being configured to generate thesignal timing information and determine the times for the plurality ofwindow periods with respect to a signal of interest for each of therespective carrier frequencies.
 28. The apparatus of claim 19, whereinthe apparatus comprises a wireless receiver configured to receive thewireless signal stream transmitted by the node device.
 29. The apparatusof claim 19 further comprising at least two antennas, and wherein the atleast two antennas are configured to receive the wireless signal stream.30. The apparatus of claim 19, wherein the processing circuitry includesa field programmable logic array (FPGA).
 31. A non-transitorycomputer-readable storage medium having program code stored thereon, theprogram code being configured to, upon execution, direct an apparatus toat least: receive a wireless signal stream from a node device, thewireless signal stream including a signal of interest; generate signaltiming information comprising a one or more of pulses based on thewireless signal stream, the pulses being time-compressed portions of thesignal of interest; and determine times for a plurality of windowperiods for the signal of interest based on the signal timinginformation, wherein each timing window is associated with a respectivepulse of the timing information.
 32. The medium of claim 31, wherein theprogram code is further configured to direct the apparatus to: retrieve,from a memory device that stores the signal stream, symbols of thesignal of interest based on the window periods; format the symbols ofthe signal of interest in preparation for determining a location of asource of the signal of interest; determine time of arrival informationbased on the formatted symbols; and provide the time of arrivalinformation to a location processing service to determine the locationof the source of the signal based on the time of arrival.
 33. The mediumof claim 32, wherein the program code configured to direct the apparatusto format the symbols includes being configured to direct the apparatusto filter data within the retrieved symbols to include only portions ofthe signal of interest that are associated with the window periods. 34.The medium of claim 30, wherein the program code is further configuredto direct the apparatus to: estimate a phase of the signal of interestvia utilization of quadrature sampled data from the signal of interest,and reduce interference and noise by processing a portion of the signalof interest that is in-phase with the estimated phase.
 35. The medium ofclaim 31, wherein the program code is further configured to direct theapparatus to store the wireless signal stream in a memory device. 36.The medium of claim 35, wherein the program code configured to directthe apparatus to store the wireless signal stream includes beingconfigured to direct the apparatus to store the wireless signal streamsuch that the memory device operates as a circular buffer for incomingwireless signals.
 37. The medium of claim 31, wherein the program codeconfigured to direct the apparatus to generate the signal timinginformation includes being configured to direct the apparatus togenerate the signal timing information via at least one matched filter.38. The medium of claim 31, wherein the program code configured todirect the apparatus to generate the one or more of pulses includesbeing configured to direct the apparatus to generate the one or more ofpulses where each pulse is time-compressed based on a spread ratio. 39.The medium of claim 31, wherein the program code is further configuredto direct the apparatus to receive a plurality of wireless signalstreams, each signal stream within the plurality having a respectivecarrier frequency; and wherein the program code is further configured togenerate the signal timing information and determine the times for theplurality of window periods includes being configured to direct theapparatus to generate the signal timing information and determine thetimes for the plurality of window periods with respect to a signal ofinterest for each of the respective carrier frequencies.